package com.da.lon.wang.xlg.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.webkit.WebView;

public class ScrollWebView extends WebView {

    private ViewGroup parent;
    private float mDownX;
    private float mDownY;

    public ScrollWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ScrollWebView(Context context) {
        super(context);
    }

    public void setNestedpParent(ViewGroup parent) {
        this.parent = parent;
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {

        if (getScrollY() == 0) {
            requestDisallowInterceptTouchEvent(false);
        } else {

            requestDisallowInterceptTouchEvent(true);
            // switch (ev.getAction()) {
            // case MotionEvent.ACTION_DOWN:
            // mDownX = ev.getX();
            // mDownY = ev.getY();
            //
            // getParent().requestDisallowInterceptTouchEvent(true);
            // break;
            // case MotionEvent.ACTION_MOVE:
            // if (Math.abs(ev.getX() - mDownX)>Math.abs(ev.getY() - mDownY)) {
            // getParent().requestDisallowInterceptTouchEvent(false);
            // } else {
            // getParent().requestDisallowInterceptTouchEvent(true);
            // }
            // break;
            // case MotionEvent.ACTION_UP:
            // break;
            // case MotionEvent.ACTION_CANCEL:
            // getParent().requestDisallowInterceptTouchEvent(true);
            // break;
            // }
        }

        return super.dispatchTouchEvent(ev);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        // TODO Auto-generated method stub

        if (getScrollY() == 0) {
            requestDisallowInterceptTouchEvent(false);
        } else {

            requestDisallowInterceptTouchEvent(true);
            // switch (ev.getAction()) {
            // case MotionEvent.ACTION_DOWN:
            // mDownX = ev.getX();
            // mDownY = ev.getY();
            //
            // getParent().requestDisallowInterceptTouchEvent(true);
            // break;
            // case MotionEvent.ACTION_MOVE:
            // if (Math.abs(ev.getX() - mDownX)>Math.abs(ev.getY() - mDownY)) {
            // getParent().requestDisallowInterceptTouchEvent(false);
            // } else {
            // getParent().requestDisallowInterceptTouchEvent(true);
            // }
            // break;
            // case MotionEvent.ACTION_UP:
            // break;
            // case MotionEvent.ACTION_CANCEL:
            // getParent().requestDisallowInterceptTouchEvent(true);
            // break;
            // }
        }

        return super.onInterceptTouchEvent(ev);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {

        if (getScrollY() == 0) {
            getParent().requestDisallowInterceptTouchEvent(false);
        } else {

            requestDisallowInterceptTouchEvent(true);
            // switch (ev.getAction()) {
            // case MotionEvent.ACTION_DOWN:
            // mDownX = ev.getX();
            // mDownY = ev.getY();
            //
            // getParent().requestDisallowInterceptTouchEvent(true);
            // break;
            // case MotionEvent.ACTION_MOVE:
            // if (Math.abs(ev.getX() - mDownX)>Math.abs(ev.getY() - mDownY)) {
            // getParent().requestDisallowInterceptTouchEvent(false);
            // } else {
            // getParent().requestDisallowInterceptTouchEvent(true);
            // }
            // break;
            // case MotionEvent.ACTION_UP:
            // break;
            // case MotionEvent.ACTION_CANCEL:
            // getParent().requestDisallowInterceptTouchEvent(true);
            // break;
            // }
        }

        return super.onTouchEvent(ev);
    }

}
